<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <ul>
        <li>item1</li>
        <li>item2</li>
        <li>item3</li>
        <li>item4</li>
        <li>item5</li>
    </ul>
    <script type="text/javascript">
        var oLi = document.getElementsByTagName('li');
        var item;
        /**
         * var声明变量会导致变量提升
         * 如果不加立即执行函数，会导致i始终为5
         * 而且绑定的时候 函数没有执行 已经循环完了 只能是5
         * 所以每循环一次必须让他自执行一次
         */ 
        for (var i = 0; i < oLi.length; i++) {
            item = oLi[i];
            (function (i) {
                item.onclick = function () {
                    console.log(i);
                    this.innerText = i;
                }
            })(i);
        }
    </script>
</body>

</html>